#pragma once

typedef IID CLSID;

#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
        EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}


MIDL_DEFINE_GUID(IID, IID_IDog,0x0503702E,0xB81C,0x44A5,0x9B,0xEB,0x2D,0xFD,0x16,0xE6,0x65,0x70);

MIDL_DEFINE_GUID(IID, IID_ICat,0xAB548B2A,0x3CC6,0x4DD3,0x9D,0x2C,0x79,0xE0,0x0C,0x50,0xD3,0xFE);

MIDL_DEFINE_GUID(IID, IID_IPig,0xC0BFD99A,0x4DB5,0x4559,0x8F,0xA2,0x09,0xB6,0x39,0x40,0xFB,0x8A);

MIDL_DEFINE_GUID(IID, IID_ISetName,0x4E6617C8,0xE082,0x41C2,0x8B,0x18,0x13,0x87,0x1E,0xEF,0x1F,0x60);

MIDL_DEFINE_GUID(IID, IID_IVariety,0xE37EC93B,0x7F91,0x484F,0x80,0xB6,0x2A,0xBE,0x77,0x0E,0xA2,0x50);

MIDL_DEFINE_GUID(CLSID, CLSID_ANIMALS,0x1904BE9D,0x0377,0x453E,0x98,0x9A,0xC8,0xBA,0x4F,0x3F,0x94,0x0E);

// {DCB56D2A-7639-43C1-A7E2-EE626D3DA689}
MIDL_DEFINE_GUID(CLSID, CLSID_ANIMAL_ROOT, 0xdcb56d2a, 0x7639, 0x43c1, 0xa7, 0xe2, 0xee, 0x62, 0x6d, 0x3d, 0xa6, 0x89);

// {FE6125AE-133A-42F3-BD36-9FCD31A352DA}
MIDL_DEFINE_GUID(CLSID, CLSID_ANIMAL_VARIETY, 0xfe6125ae, 0x133a, 0x42f3, 0xbd, 0x36, 0x9f, 0xcd, 0x31, 0xa3, 0x52, 0xda);

